# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
import pymysql

class GkzxscoresPipeline(object):
    def process_item(self, item, spider):
        return item

class GkzxscoresMysqlPipeline(object):
    def __init__(self):
        # 连接MYSQL数据库    这里用的是MYSQL8版本的
        self.connect = pymysql.connect(
            # 连接的是本地数据库
            host='localhost',
            # 数据库用户名
            user='root',
            # 数据库密码
            password='root',
            # 连接的数据库
            db='gkzx',
            # 端口号
            port=3307,
            # 编码格式
            charset = 'utf8'
        )

        # 创建游标，用于操作数据库
        self.cursor = self.connect.cursor()

    def process_item(self, item, spider):
        # 将数据转换成字典格式
        datas = dict(item)
        # 得到字段名
        keys = ','.join(datas.keys())
        # print(keys)
        # 要插入的格式
        values = ','.join(['%s'] * len(datas))
        # print(values)
        # 要插入数据库的表名
        tableName = 'gkzxsroces'
        # sql语句
        sql = F'INSERT INTO {tableName}({keys}) VALUES ({values})'
        # 填充数据到sql
        self.cursor.execute(sql, tuple(datas.values()))
        # 提交数据
        self.connect.commit()
        return item

    # 关闭数据库
    def close(self, spider):
        self.cursor.close()
        self.connect.close()
